package org.example.device.protocol;

import java.util.Map;

/**
 * 设备协议接口
 * 定义不同设备协议的通信方式
 */
public interface DeviceProtocol {
    
    /**
     * 发送控制命令
     * @param deviceId 设备ID
     * @param command 命令内容
     * @param parameters 参数
     * @return 发送结果
     */
    ProtocolResult sendCommand(Long deviceId, String command, Map<String, Object> parameters);
    
    /**
     * 获取设备状态
     * @param deviceId 设备ID
     * @return 设备状态
     */
    ProtocolResult getDeviceStatus(Long deviceId);
    
    /**
     * 检查设备连接
     * @param deviceId 设备ID
     * @return 连接状态
     */
    ProtocolResult checkConnection(Long deviceId);
    
    /**
     * 获取协议类型
     * @return 协议类型
     */
    String getProtocolType();
    
    /**
     * 初始化协议连接
     * @param config 配置参数
     * @return 初始化结果
     */
    boolean initialize(Map<String, Object> config);
    
    /**
     * 关闭协议连接
     */
    void shutdown();
}
